Skip to content

[DNS] perfetto: Add VideoFrame data source with native BLOB storage#5380

Open
zezeozue wants to merge 1 commit intomainfrom
dev/zezeozue/dev/zezeozue/cherry-pick-4e904c4
Open

[DNS] perfetto: Add VideoFrame data source with native BLOB storage#5380
zezeozue wants to merge 1 commit intomainfrom
dev/zezeozue/dev/zezeozue/cherry-pick-4e904c4

Conversation

@zezeozue
Copy link
Copy Markdown
Member

@zezeozue zezeozue commented Apr 1, 2026

Proto:

  • New VideoFrame message (field 129 on TracePacket) with frame_number, jpg_image, track_name, and track_id fields.
  • track_name/track_id enable multi-stream support (e.g. multiple cameras).

Trace Processor:

  • VideoFrameModule: parses TracePacket.video_frame, stores JPEG bytes in a dedicated TraceBlobView vector. Metadata (ts, frame_number, track_name, track_id) goes to __intrinsic_video_frames table.
  • video_frame_image(id) SQL function: returns raw JPEG BLOB.
  • android.video_frames stdlib module.
  • Video frames contribute to trace_start()/trace_end() bounds.

UI (dev.perfetto.VideoFrames plugin):

  • Instant events rendered via SliceTrack on the timeline.
  • Per-stream tracks grouped under a collapsible "Video Frames" node, each named by track_name.
  • Details panel with frame metadata, image preview, and playback controls (play/pause/prev/next, configurable fps 1-240).
  • Area selection tab per stream for independent playback.
  • Playback in single-select mode advances the track selection.
  • FPS setting shared across all panels in the session.

@zezeozue zezeozue requested a review from a team as a code owner April 1, 2026 18:00
@google-cla
Copy link
Copy Markdown

google-cla bot commented Apr 1, 2026

Thanks for your pull request! It looks like this may be your first contribution to a Google open source project. Before we can look at your pull request, you'll need to sign a Contributor License Agreement (CLA).

View this failed invocation of the CLA check for more information.

For the most up to date status, view the checks section at the bottom of the pull request.

@github-actions
Copy link
Copy Markdown

github-actions bot commented Apr 1, 2026

@zezeozue zezeozue force-pushed the dev/zezeozue/dev/zezeozue/cherry-pick-4e904c4 branch from 5672adb to 5aff18f Compare April 1, 2026 21:13
Proto:
- New VideoFrame message (field 129 on TracePacket) with
  frame_number, jpg_image, track_name, and track_id fields.
- track_name/track_id enable multi-stream support (e.g. multiple
  cameras).

Trace Processor:
- VideoFrameModule: parses TracePacket.video_frame, stores JPEG
  bytes in a dedicated TraceBlobView vector. Metadata (ts,
  frame_number, track_name, track_id) goes to
  __intrinsic_video_frames table.
- video_frame_image(id) SQL function: returns raw JPEG BLOB.
- android.video_frames stdlib module.
- Video frames contribute to trace_start()/trace_end() bounds.

UI (dev.perfetto.VideoFrames plugin):
- Instant events rendered via SliceTrack on the timeline.
- Per-stream tracks grouped under a collapsible "Video Frames"
  node, each named by track_name.
- Details panel with frame metadata, image preview, and playback
  controls (play/pause/prev/next, configurable fps 1-240).
- Area selection tab per stream for independent playback.
- Playback in single-select mode advances the track selection.
- FPS setting shared across all panels in the session.

Change-Id: I0dbcc381446fc1e765ee0cd5230c86f586ae11be
@zezeozue zezeozue force-pushed the dev/zezeozue/dev/zezeozue/cherry-pick-4e904c4 branch from 5aff18f to 454a788 Compare April 2, 2026 17:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant